package main

import (
	"fmt"

	"github.com/jinzhu/gorm"
	_ "github.com/jinzhu/gorm/dialects/mysql" //需要引入mysql驱动包，不然会报错
)

/*
*
进行验证新建表，删除表，判断表是否存在
【1】新建表

	CreateTable()

【2】删除表

	DropTable()

【3】判断表是否存在

	HasTable()
*/
func main() {
	db, err := gorm.Open("mysql", "root:123456@tcp(192.168.11.189:3306)/lztest?charset=utf8&parseTime=True&loc=Local")

	if err != nil {
		panic(err)
	}

	defer db.Close()

	//【2】进行创建数据表
	//通常表的命名是按照复数的形式创建，将大写字母变小写，最后加s
	//如果结构体是驼峰标识则在大写字母前加"_"，在将大写变小写，最后加s
	//如果结构体是连续大写字母则在驼峰标识位置前加“_”,在将大写变小写，最后加s
	//字段也遵循上述逻辑
	//db.CreateTable(&User{})

	//创建表的过程中可以指定表名 通过Table方法进行指定
	//db.Table("myuser").CreateTable(&User{})

	//【3】删除表
	//通过&User{} 进行删除表
	//db.DropTable(&User{})
	//通过表名删除表
	//db.DropTable("myuser")

	//【4】判断表是否存在
	//通过&User{}进行判断表是否存在
	flog := db.HasTable(&User{})
	fmt.Println(flog)
	//通过表名判断是否存在
	flog1 := db.HasTable("myuser")
	fmt.Println(flog1)

}

// 【1】创建表之前需要创建一个结构体
type User struct {
	UName string
	Age   int
}
